/* * PIR sensor tester */ #include #include const int rxPin = 0; const int txPin = 1; const int ledPin = 13; const int buttonPin = A4; SoftwareSerial mySerial(rxPin, txPin); // Rx & Tx pin int inputPin = PD3; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected int val = 0; // variable for reading the pin status #define NUMBER_OF_PINS 6 //define pins in the order you want to address them byte pins[] = {10, 9, 8, 7, 6, 5}; //initialize object Charlieplex charlieplex = Charlieplex(pins, NUMBER_OF_PINS); //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledA1 = { 1, 0 }; charliePin ledA2 = { 2 , 0}; charliePin ledA3 = { 3, 0}; charliePin ledA4 = { 4, 0 }; charliePin ledA5 = { 5, 0 }; //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledB1 = { 0, 1 }; charliePin ledB2 = { 2, 1}; charliePin ledB3 = { 3, 1}; charliePin ledB4 = { 4, 1 }; charliePin ledB5 = { 5, 1 }; //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledC1 = { 0, 2 }; charliePin ledC2 = { 1, 2}; charliePin ledC3 = { 3, 2}; charliePin ledC4 = { 4, 2 }; charliePin ledC5 = { 5, 2 }; //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledD1 = { 0, 3 }; charliePin ledD2 = { 1, 3}; charliePin ledD3 = { 2, 3}; charliePin ledD4 = { 4, 3 }; charliePin ledD5 = { 5, 3 }; //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledE1 = { 0, 4 }; charliePin ledE2 = { 1, 4}; charliePin ledE3 = { 2, 4}; charliePin ledE4 = { 3, 4 }; charliePin ledE5 = { 5, 4 }; //individual 'pins' , address charlieplex pins as you would adress an array charliePin ledF1 = { 0, 5 }; charliePin ledF2 = { 1, 5}; charliePin ledF3 = { 2, 5}; charliePin ledF4 = { 3, 5 }; charliePin ledF5 = { 4, 5 }; void setup() { pinMode(inputPin, INPUT); // declare sensor as input pinMode(ledPin, OUTPUT); // initialize digital pin 13 as an output on Sabaduino Board pinMode(buttonPin, INPUT_PULLUP); mySerial.begin(4800); mySerial.println("Hello World!"); // initialize variables: int buttonState = 0; // variable for reading the pushbutton status } void loop(){ digitalWrite(ledPin, HIGH); // turn LED on int buttonState = digitalRead(buttonPin); if (buttonState == LOW) { Serial.print("Button is pressed"); buttonState = buttonState + 1; Serial.println(buttonState); } else { Serial.println("Button is NOT pressed"); } // Delay so that the text doesn't scroll too fast on the Serial Monitor. // Adjust to a larger number for a slower scroll. delay(1000); digitalWrite(ledPin, LOW); delay(500); charlieplex.clear(); val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH charlieplex.charlieWrite(ledA1,LOW); // turn LED ON charlieplex.charlieWrite(ledB1,LOW); // turn LED ON charlieplex.charlieWrite(ledD1,LOW); // turn LED ON charlieplex.charlieWrite(ledE1,LOW); // turn LED ON charlieplex.charlieWrite(ledF1,LOW); // turn LED ON charlieplex.charlieWrite(ledA3,LOW); // turn LED ON charlieplex.charlieWrite(ledB3,LOW); // turn LED ON charlieplex.charlieWrite(ledD3,LOW); // turn LED ON charlieplex.charlieWrite(ledE3,LOW); // turn LED ON charlieplex.charlieWrite(ledF3,LOW); // turn LED ON charlieplex.charlieWrite(ledA5,LOW); // turn LED ON charlieplex.charlieWrite(ledB5,LOW); // turn LED ON charlieplex.charlieWrite(ledD5,LOW); // turn LED ON charlieplex.charlieWrite(ledE5,LOW); // turn LED ON charlieplex.charlieWrite(ledF5,LOW); // turn LED ON if (pirState == LOW) { // we have just turned on mySerial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { charlieplex.charlieWrite(ledA1,HIGH); // turn LED OFF charlieplex.charlieWrite(ledB1,HIGH); // turn LED OFF charlieplex.charlieWrite(ledD1,HIGH); // turn LED OFF charlieplex.charlieWrite(ledE1,HIGH); // turn LED OFF charlieplex.charlieWrite(ledF1,HIGH); // turn LED OFF charlieplex.charlieWrite(ledA3,HIGH); // turn LED OFF charlieplex.charlieWrite(ledB3,HIGH); // turn LED OFF charlieplex.charlieWrite(ledD3,HIGH); // turn LED OFF charlieplex.charlieWrite(ledE3,HIGH); // turn LED OFF charlieplex.charlieWrite(ledF3,HIGH); // turn LED OFF charlieplex.charlieWrite(ledA5,HIGH); // turn LED OFF charlieplex.charlieWrite(ledB5,HIGH); // turn LED OFF charlieplex.charlieWrite(ledD5,HIGH); // turn LED OFF charlieplex.charlieWrite(ledE5,HIGH); // turn LED OFF charlieplex.charlieWrite(ledF5,HIGH); // turn LED OFF if (pirState == HIGH){ // we have just turned off mySerial.println("Motion ended!"); // We only want to print on the output change, not state pirState = LOW; } } }